package Methond;
/*
对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦

方法的重载(OverLoad):多个方法的名称一样,但是参数列表不一样
好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能

参数重载与下列因素相关
1.参数不同
2.参数类型不同
3.参数的多类型顺序不同

参数重载与下列因素无关
1.与参数的名称无关
2.与方法的返回值类型无关
*/
public class Demo04MethodOverLoad {
    public static void main(String[] args) {
        System.out.println(sum(2, 3));
        System.out.println(sum(1, 2,3));
        System.out.println(sum(1,2,3,3));

    }
    public static int sum(int a,int b){
        System.out.println("2个参数的");
        return a+b;
    }
    //参数类型不同影响方法重载
    public static int sum(int a,double b){
        System.out.println("2个参数的");
        return (int) (a+b);
    }
    //参数类型的顺序不同,影响方法重载
    public static int sum(double a,int b){
        System.out.println("2个参数的");
        return (int) (a+b);
    }

    /* 方法重载与参数的名称无关
    public static int sum(double x,int y){
        System.out.println("2个参数的");
        return (int) (x+y);
    }*/

    /*方法重载与方法的返回值类型 无关
    public static double sum(double a,int b){
        System.out.println("2个参数的");
        return (int) (a+b);
    }*/


    public static int sum(int a,int b,int c){
        System.out.println("3个参数的");
        return a+b+c;
    }
    public static int sum(int a,int b,int c,int d){
        System.out.println("4个参数的");
        return a+b+c+d;
    }
}
